/*
    见识更多二维动态规划题目

    前置知识: 
    讲解067-从递归入手二维动态规划


    本节课不再从递归入手，而是直接从动态规划的定义入手，来见识更多二维动态规划问题


    本节课包含一些 比较巧妙的尝试思路

    注意：
    二维动态规划问题非常多，不仅讲解067、讲解068涉及，整个系列课程会大量涉及
    【必备】课程后续会讲背包dp、区间dp、状压dp等等，依然包含大量二维动态规划问题

    ================================================

    题目1
    不同的子序列
    给你两个字符串s和t
    统计在s的所有子序列中
    有多少个子序列等于t
    测试链接 : https://leetcode.cn/problems/distinct-subsequences/

    ================================================

    题目2
    编辑距离
    给你两个单词 word1 和 word2
    请返回将 word1 转换成 word2 所使用的最少代价
    你可以对一个单词进行如下三种操作：
    插入一个字符，代价a
    删除一个字符，代价b
    替换一个字符，代价c
    测试链接 : https://leetcode.cn/problems/edit-distance/

    注意：
    测试里说的题意，只是编辑距离问题的一种情况，请掌握完整的编辑距离问题

    ================================================

    题目3
    交错字符串
    给定三个字符串 s1、s2、s3
    请帮忙验证s3是否由s1和s2交错组成
    测试链接 : https://leetcode.cn/problems/interleaving-string/

    ================================================

    题目4
    有效涂色问题
    给定n、m两个参数
    一共有n个格子，每个格子可以涂上一种颜色，颜色在m种里选
    当涂满n个格子，并且m种颜色都使用了，叫一种有效方法
    求一共有多少种有效的涂色方法
    1 <= n, m <= 5000
    结果比较大请 % 1000000007 之后返回
    对数器验证

    ================================================

    题目5
    删除至少几个字符可以变成另一个字符串的子串
    给定两个字符串s1和s2
    返回s1至少删除多少字符可以成为s2的子串
    对数器验证

*/